package xauth

import (
	"time"

	"gitee.com/xiaoyutab/xgotool/optional/xcache"
)

// 获取角色权限
//
//	rid	角色ID
func getRoleAuth(rid []uint) []uint {
	if len(rid) == 0 {
		return nil
	}
	cache_key := xcache.Key("xauth.get-role-auth", rid)
	mod := []uint{}
	if xcache.Exists(cache_key) {
		if err := xcache.GetStruct(cache_key, &mod); err == nil {
			return mod
		}
		mod = []uint{}
	}
	// 从数据库中进行查询
	err := _default.DB.Table(_default.RoleAuthName).Select("auth_id").Where("role_id in ?", rid).Find(&mod).Error
	if err != nil {
		errFun("角色权限获取失败", err)
		return nil
	}
	xcache.SetStructExt(cache_key, mod, time.Hour*24*30)
	return mod
}
